﻿namespace AiMoWindows.Compiler
{
    interface ICompilerScript
    {
        /// <summary>
        /// 当代码改变的时候，Hash也发生改变
        /// </summary>
        string GetScriptHash();
        /// <summary>
        /// 当Reference Assembly有，且文件存在发生改变的时候，Hash改变
        /// </summary>
        string GetReferenceExistedChangedHash();
        /// <summary>
        /// 获取编译用的代码，以及Reference Asseblies
        /// </summary>
        CompileCodeUnit[] GetCodeForCompiler();
        string[] GetReferenceAssemblies();
        /// <summary>
        /// 在编译结束之后，由编译器返回编译结果给Script代码，做一些后处理
        /// </summary>
        void OnCompileSuccess(CompiledResult result);
    }
}
